package dominio;

import dominio.cliente.Cliente;
import dominio.cliente.ClienteRepositorio;
import dominio.cliente.localidade.Cidade;
import dominio.cliente.localidade.Endereco;
import dominio.hospedagem.HospedagemFabrica;
import dominio.hospedagem.HospedagemRepositorio;
import dominio.quarto.Quarto;
import dominio.quarto.QuartoRepositorio;
import dominio.quarto.Tipo;
import dominio.reserva.ReservaFabrica;
import dominio.reserva.ReservaRepositorio;


public abstract class Fabrica {
	
	public static final HospedagemFabrica HOSPEDAGEM = new HospedagemFabrica();
	public static final ReservaFabrica RESERVA = new ReservaFabrica();;
	
	public static final ClienteRepositorio CLIENTE_REPOSITORIO = new ClienteRepositorio();
	public static final HospedagemRepositorio HOSPEDAGEM_REPOSITORIO = new HospedagemRepositorio();
	public static final ReservaRepositorio RESERVA_REPOSITORIO = new ReservaRepositorio();
	public static final QuartoRepositorio QUARTO_REPOSITORIO = new QuartoRepositorio();

	
	
	
	static {
		Cliente cliente = new Cliente();
		cliente.nome = "Jairo Junior";
		cliente.cpf = "12345";
		cliente.rg = "123";
		cliente.endereco = new Endereco();
		cliente.endereco.cidade = Cidade.MACEIO;
		cliente.endereco.numero = "12";
		CLIENTE_REPOSITORIO.cadastrar(cliente);
	}
	
	static {
		for (int i = 1; i <= 5; i++) {
			Quarto quarto = new Quarto();
			quarto.numero = i;
			quarto.disponivel = true;
			quarto.tipo = Tipo.DUPLO;
			QUARTO_REPOSITORIO.salvar(quarto);
		}
		for (int i = 6; i <= 10; i++) {
			Quarto quarto = new Quarto();
			quarto.numero = i;
			quarto.disponivel = true;
			quarto.tipo = Tipo.FAMILIA;
			QUARTO_REPOSITORIO.salvar(quarto);
		}
	}
}